home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / s_to_z / t_rex10 / trexdm03.pas < prev    next >
Pascal/Delphi Source File  |  1996-09-15  |  2KB  |  67 lines

  1. unit Trexdm03;
  2.  
  3. {
  4. $Log:   W:/users/prodigy/prodig~1/archive/trex/trexdm03.pav  $
  5.  * 
  6.  *    Rev 1.0   07 Apr 1996 18:30:52   PaulK
  7.  * Work in progress on demos
  8. }
  9.  
  10. interface
  11.  
  12. uses
  13.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  14.   Forms, Dialogs, StdCtrls, T_Rex, ExtCtrls;
  15.  
  16. type
  17.   TForm1 = class(TForm)
  18.     Edit1: TEdit;
  19.     Edit2: TEdit;
  20.     Edit3: TEdit;
  21.     Edit4: TEdit;
  22.     Label1: TLabel;
  23.     Label2: TLabel;
  24.     Label3: TLabel;
  25.     Button1: TButton;
  26.     Bevel1: TBevel;
  27.     Label4: TLabel;
  28.     procedure Button1Click(Sender: TObject);
  29.   private
  30.     { Private declarations }
  31.     re: TRegExp;
  32.   public
  33.     { Public declarations }
  34.   end;
  35.  
  36. var
  37.   Form1: TForm1;
  38.  
  39. implementation
  40.  
  41. {$R *.DFM}
  42.  
  43. procedure TForm1.Button1Click(Sender: TObject);
  44.  
  45. var
  46.   s: string;
  47.  
  48. begin
  49. {This procedure creates and destroys the finite state
  50.  recognizer for the regular expression each time the button
  51.  is pressed. This is necessary here because the regular expression
  52.  could be different each time. But in many programs, the regular
  53.  expression is known at design time, or can be determined once
  54.  at runtime. In these cases it is most inefficient to repeatedly
  55.  compile and throw away the finite state recognizer, and the
  56.  calls to TRegExp.Create and TRegExp.Free can be moved to points
  57.  in the program where they are only executed once.}
  58.  
  59. re := TRegExp.Create(Edit1.Text);
  60. s := Edit2.Text;
  61. re.Subst(s,Edit3.Text,maxint);
  62. Edit4.Text := s;
  63. re.Free;
  64. end;
  65.  
  66. end.
  67.